package cn.iocoder.yudao.module.enterprise.service.boundary;

import cn.iocoder.yudao.module.enterprise.controller.admin.boundary.vo.BoundaryCreateReqVO;
import cn.iocoder.yudao.module.enterprise.controller.admin.boundary.vo.BoundaryUpdateReqVO;
import cn.iocoder.yudao.module.enterprise.dal.dataobject.boundary.BoundaryDO;

import javax.validation.Valid;

/**
 * 组织边界 Service 接口
 *
 * @author StevenShen
 */
public interface BoundaryService {

    /**
     * 创建组织边界
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createBoundary(@Valid BoundaryCreateReqVO createReqVO);

    /**
     * 更新组织边界
     *
     * @param updateReqVO 更新信息
     */
    void updateBoundary(@Valid BoundaryUpdateReqVO updateReqVO);

    /**
     * 删除组织边界
     *
     * @param id 编号
     */
    void deleteBoundary(Long id);

    /**
     * 获得组织边界
     *
     * @param id 编号
     * @return 组织边界
     */
    BoundaryDO getBoundary(Long id);

    /**
     * 根据计划ID获得组织边界
     *
     * @param planId 计划编号
     * @return 组织边界
     */
    BoundaryDO getBoundaryByPlanId(Long planId);

}
